{{tag>serveur reseau web sgbd}}
----

====== OCI8 : extension PHP pour les connexions avec Oracle ======

===== Introduction ======
OCI8 est le nom de l'extension PHP permettant à ce langage Web de communiquer avec les bases de données Oracle de versions supérieures ou égales à 8.







===== Récuperation des sources =====
Pour cela, vous allez avoir besoin du dépôt de paquets Oracle dans votre fichier /etc/apt/sources.list

        deb http://oss.oracle.com/debian unstable main non-free

Effectuez la commande suivante pour mettre à jour vos sources, puis installez le paquet Oracle InstantClient (contenant accessoirement la commande sqlplus).

**Attention :** Le paquet demande un minimum de 1024 Mo de swap. Il ne seront pas utilisé, mais ils sont cependant indispensable pour l'installer.

Pour ajouter temporairement 1024Mo
        su -
        dd if=/dev/zero of=tmpswap bs=1M count=1000
        chmod 600 tmpswap
        mkswap tmpswap
        swapon tmpswap

        sudo apt-get update
        sudo apt-get install oracle-xe-client

Pour éviter les erreurs genre : GPG error: Les signatures suivantes n'ont pas pu être vérifiées car la clé publique n'est pas disponible : NO_PUBKEY 2E2BCDBCB38A8516, il faut ajouter la clé Oracle dans apt :

        cd /tmp
        sudo wget http://oss.oracle.com/el4/RPM-GPG-KEY-oracle
        sudo apt-key add RPM-GPG-KEY-oracle
    
Les paquets suivants seront également indispensable pour compiler l'extension :

        sudo apt-get install php-pear php5-dev build-essential




===== Compiler et installer OCI8 =====
Utilisez la commande nouvellement installée pecl, qui permet d'installer des extensions tierces à PHP. Si le serveur est déconnecté d'Internet, téléchargez l'extension OIC8 pecl à l'adresse suivante: http://pecl.php.net/package/oci8 et remplacez "oci8" par "oci8-XXXX.tgz" dans la commande suivante.

        sudo pecl install oci8

L'assistant vous posera une question sur l'emplacement des bibliothèques Oracle (OCI8-LIB). Vous répondrez tout d'abord all, puis il vous reposera la question et vous répondrez :

        /usr/lib/oracle/xe/app/oracle/product/10.2.0/client

Puis Entrée. Enfin, appuyez encore une fois sur Entrée pour confirmer.
Le processus de compilation devrait alors se passer convenablement et vous informer de sa réussite.

===== Configurer apache =====

Il ne vous reste plus qu'à ajouter cette extension dans le fichier de configuration de PHP 5, à savoir /etc/php5/apache2/php.ini

        extension=oci8.so

Redémarrez enfin Apache 2 :

        sudo /etc/init.d/apache2 restart







===== SQLPLUS par l'interpréteur de commande =====
Pour accéder à la commande sqlplus directement depuis votre interpréteur de commande, ajoutez au fichier /etc/environment le chemin suivant au $PATH :
   PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/bin/X11:/usr/games:/usr/lib/oracle/xe/app/oracle/product/10.2.0/client/bin"
\\


Par default, l'installeur ne crée pas le tnsnames.ora. Alors, creez /etc/tnsnames.ora à la main, par exemple comme ceci:


   EXEMPLE =
   (DESCRIPTION =
      (ADDRESS_LIST =
         (ADDRESS = (PROTOCOL = TCP)(HOST = dbserveur-distant )(PORT = 1521))
      )
      (CONNECT_DATA =
         (SERVICE_NAME = EXEMPLE)
      )
   )


faites un test

    sqlplus login_du_serveur_distant/mot_de_passe_du_serveur_distant@EXEMPLE




----

//Contributeurs: //